package classesBancodeDados;

import classesMiolo.FichaKey;
import classesMiolo.MapasFichaInternamento;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;

@Entity
@IdClass(FichaKey.class)
public class FichaInternamento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    private String nPront;
    @Id
    private String sus;
    
    private int leito;
    private String dataInter;
    private String dataAlta;
    private String horaInter;
    private String numOrdArq;
    private boolean outroInter;
    private String numCNS;
    private String numLaudo;
    private char motivoAlta;
    private String cidObito;
    private String testemunhas;
    private String motivoPedido;
    private String parentesco;
    private String cpfResp2;

    public FichaInternamento(String nPront, String sus, String dataInter, 
                             String horaInter, String numOrdArq, boolean outroInter,
                             String numCNS, String numLaudo, String motivoAlta,
                             String testemunhas, String motivoPedido, String parentesco,
                             String cpfResp2) {
        this.nPront = nPront;
        this.sus = sus;
        this.dataInter = dataInter;
        this.horaInter = horaInter;
        this.numOrdArq = numOrdArq;
        this.outroInter = outroInter;
        this.numCNS = numCNS;
        this.numLaudo = numLaudo;
        this.dataAlta = "";
        this.cidObito = "";
        this.motivoAlta = MapasFichaInternamento.getInstance().getMotivoAlta().get(motivoAlta);
        this.motivoPedido = motivoPedido;
        this.testemunhas = testemunhas;
        this.parentesco = parentesco;
        this.cpfResp2 = cpfResp2;
    }

    public FichaInternamento() {
        this.cidObito = "";
        this.dataAlta = "";
        this.dataInter = "";
        this.horaInter = "";
        this.motivoAlta = 'a';
        this.nPront = "";
        this.numCNS = "";
        this.numLaudo = "";
        this.numOrdArq = "";
        this.outroInter = false;
        this.sus = "";
        this.parentesco = "";
        this.cpfResp2 = "";
    }      

    public int getLeito() {
        return leito;
    }

    public void setLeito(int leito) {
        this.leito = leito;
    }

    public String getNumeroProntuario() {
        return nPront;
    }

    public void setNumeroProntuario(String nPront) {
        this.nPront = nPront;
    }

    public String getSus() {
        return sus;
    }

    public void setSus(String sus) {
        this.sus = sus;
    }   

    public String getDataInter() {
        return dataInter;
    }

    public void setDataInter(String dataInter) {
        this.dataInter = dataInter;
    }

    public String getDataAlta() {
        return dataAlta;
    }

    public void setDataAlta(String dataAlta) {
        this.dataAlta = dataAlta;
    }

    public String getHoraInter() {
        return horaInter;
    }

    public void setHoraInter(String horaInter) {
        this.horaInter = horaInter;
    }

    public String getNumOrdArq() {
        return numOrdArq;
    }

    public void setNumOrdArq(String numOrdArq) {
        this.numOrdArq = numOrdArq;
    }

    public boolean isOutroInter() {
        return outroInter;
    }

    public void setOutroInter(boolean outroInter) {
        this.outroInter = outroInter;
    }

    public String getNumCNS() {
        return numCNS;
    }

    public void setNumCNS(String numCNS) {
        this.numCNS = numCNS;
    }

    public String getNumLaudo() {
        return numLaudo;
    }

    public void setNumLaudo(String numLaudo) {
        this.numLaudo = numLaudo;
    }

    public char getMotivoAlta() {
        return motivoAlta;
    }

    public void setMotivoAlta(char motivoAlta) {
        this.motivoAlta = motivoAlta;
    }

    public String getCidObito() {
        return cidObito;
    }

    public void setCidObito(String cidObito) {
        this.cidObito = cidObito;
    }

    public String getTestemunhas() {
        return testemunhas;
    }

    public void setTestemunhas(String testemunhas) {
        this.testemunhas = testemunhas;
    }

    public String getMotivoPedido() {
        return motivoPedido;
    }

    public void setMotivoPedido(String motivoPedido) {
        this.motivoPedido = motivoPedido;
    }

    public String getParentesco() {
        return parentesco;
    }

    public void setParentesco(String parentesco) {
        this.parentesco = parentesco;
    }   

    public String getCpfResp2() {
        return cpfResp2;
    }

    public void setCpfResp2(String cpfResp2) {
        this.cpfResp2 = cpfResp2;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (nPront != null ? nPront.hashCode() : 0);
        hash += (sus != null ? sus.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof FichaInternamento)) {
            return false;
        }
        FichaInternamento other = (FichaInternamento) object;
        if ((this.nPront == null && other.nPront != null) || (this.nPront != null && !this.nPront.equals(other.nPront))) {
            return false;
        }
        if ((this.sus == null && other.sus != null) || (this.sus != null && !this.sus.equals(other.sus))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "classesBancodeDados.FichaInternamento[ nPront=" + nPront + ", sus=" + sus + " ]";
    }
    
}
